Simplified method and apparatus for programming a universal transmitter

ABSTRACT

A universal transmitter capable of transmitting a plurality of signals at a plurality of different modulations and frequencies which provides a simplified programming setup so that multiple signal configurations (including code format, modulation format and frequency) can be programed quickly and easily. The transmitter comprises a signal configuration input which an operator can use to select a desired signal configuration for transmission, a controller for interpreting the selected signal configuration, storing it to memory, retrieving it when the appropriate user input is depressed, and outputting it to a transmitter circuit capable of transmitting the selected signal configuration received from the controller at a predetermined modulation and frequency, and at least one user input for actuating the transmitter and identifying to the controller what signal configuration is to be transmitted by the transmitter.

REFERENCE TO COMPUTER PROGRAM LISTING APPENDIX SUBMITTED ON COMPACT DISC

[0001] The computer program listing appendix contained within file“70550prgrm_lstng.txt” on compact disc “1 of 1”, which has been filedwith the United States Patent and Trademark Office in duplicate, ishereby incorporated herein by reference. This file was created on Apr.25, 2001, and is 72 KB in size.

BACKGROUND OF THE INVENTION

[0002] This invention relates generally to transmitters and moreparticularly concerns a simplified method and apparatus for programminguniversal radio frequency (RF) transmitters.

[0003] Transmitters are used in a variety of applications in whichwireless operation is desired. For example, most garage door openers,gate operators, and rolling shutter systems utilize transmitters tooperate the movable barrier associated with the operator, (e.g., tooperate the door, gate or shutter). Many of the transmitters suppliedwith these products are designed as single function, single frequencydevices with a preset carrier frequency and use either aswitch-selectable code or a preset factory code. Switch-selectable codesare set by the user setting a plurality of switches on the transmitterand the receiver units. Factory-set codes are input into the receiver bycausing a controller (e.g., microcontroller or other processor such as amicroprocessor, gate array or the like) within the receiver to perform alearn function. The receiver enters the learn mode, then the useractivates the transmitter, which transmits a signal representing thefactory programmed code stored in the transmitter.

[0004] Over the years, there have been a variety of code formats usedfor RF transmitters. Many of the commonly used code formats employ afixed code format that may be set with Dual In-line Package switches(DIP switches), non-volatile memory devices, or the like. Other moresecure formats include billion code format in which operators can beprogrammed to operate upon receipt of an authorized actuation signalwhich consists of a code that is selected from more than a billionpossible codes. More recently, rolling code formats have become widelyused in order to offer a greater degree of security.

[0005] Rolling code transmitters are preferred in such applications asremote keyless entry systems, garage door operators, etc. An example ofa rolling code generating transmitter of the type described herein isdisclosed in U.S. patent application Ser. No. 08/873,149 filed Jun. 11,1997, now U.S. Pat. No. 6,154,544 issued Nov. 28, 2000, which isassigned to Applicants' assignee and is hereby incorporated herein byreference.

[0006] Fixed code RF transmitters are preferred in such applications asgate operators, which are typically operated by many more users than agarage door operator, because they are easy to program-making it easierto add/program additional transmitters to be used with the gateoperator. For example, additional DIP (or fixed) coded RF transmitterscan be programmed simply by matching the fixed command code, (e.g., thecode identified by the various position of the DIP switches), of theadded transmitter to other RF transmitters programmed for operating thegate. This eliminates the need to go through a lengthy programmingsequence.

[0007] In addition to the various code formats used, several transmittermanufacturers have developed their own modulation format and haveselected their own carrier frequencies for transmitting coded signals.For example, some garage door operator manufacturers transmit actuationsignals consisting of packets of ten bit codes at 300 MHZ (Multi-Code),others transmit packets of eight bit or ten bit codes at 310 MHZ(Linear/Moore-O-Matic/Stanley), while still others transmit packets ofnine bit, twelve bit, or twenty bit codes at 390 MHz(Genie/Chamberlain).

[0008] Unfortunately, transmitters often stop working, break, becomedamaged and/or get lost before their respective receivers die out. Whenthis happens, it often becomes necessary to purchase a new transmitter.Most manufacturers who sell products using transmitters offerreplacement transmitter units for sale for a period of time. However, asmanufacturers improve their products by offering greater functionality,the cost of providing replacement parts for older model units increasesand over time makes the manufacture of some transmitters impractical todo. In addition, the aftermarket for replacement transmitters is brisk,which leaves little incentive for a company to fill this gap and providenothing but replacement transmitters. As a solution to these problemssome companies offer universal transmitters for sale which can be usedon a variety of products made by a variety of manufacturers.

[0009] In order to operate properly, universal transmitters must becapable of transmitting a plurality of different codes at a plurality ofdifferent code modulations and frequencies (or carrier frequencies).These transmitters are often sought after because consumers do notalways know what type of transmitter they need, or prefer having thesecurity of knowing that the transmitter they are buying will work withtheir system. Universal transmitters are also attractive to personnelwho install and service movable barrier operators because they reducethe number of transmitters the installers need to stock and reduce thenumber of transmitters they need to learn how to program and/or operate.

[0010] In order to offer these capabilities, however, the electroniccircuits used within the transmitter become more complex, larger andexpensive. One drawback to requiring more complex circuitry is that theaddition of components can often create RF interference among the othercomponents and/or require redesign of the circuit layout. Similarly, theadded electronics often increase the size and expense of the circuit andmay require the use of a larger, more expensive microprocessor orcontroller. Typically, only a portion of the larger controller is usedwhich increases waste and lowers the efficiency of the overall circuit.Another drawback to requiring more complex circuitry is that thetransmitter often becomes harder for a user to program. For example,some universal transmitters require the user to perform a lengthysequence of pressing and releasing the user inputs in order to enter thelearn mode and/or program the transmitter. Therefore, designing auniversal transmitter which can operate at multiple frequencies formultiple code formats, while making the programing of the transmitterless complicated is the aftermarket supplier's greatest challenge.

[0011] To date, several attempts have been made to provide universaltransmitters. One example is U.S. Pat. No. 5,564,101 to Eisfeld et al.which discloses a universal transmitter for use with a garage dooropener that allows for a user to program a transmitted modulation formatand carrier frequency and transmit a signal corresponding to theselections. This transmitter uses two sets of mechanical DIP switches toselect the transmitter code and carrier frequency. Such a configurationrequires a larger controller having additional I/O ports, which willmake the circuit more complex, increase the overall circuit size, raisecosts, and result in making the transmitter more complicated to program.

[0012] U.S. Pat. No. 5,661,804 to Dykema et al. discloses a learningtransmitter which can operate a plurality of different receiversemploying rolling or encrypted code. No user input is required to learnthe code and frequency, other than activating the transmitter to becopied. A single RF circuit, phase locked loop frequency synthesizer anddynamically tunable antenna are provided for learning and transmittingthe desired code. Unfortunately, not all transmitters are functionalwhen they are being replaced, so learning transmitters are not alwaysavailable substitutes. In addition, transmitters which use singlemulti-frequency transmitter loops to generate signals at a variety offrequencies require additional time to manufacture-due to the increasedtime required to tune the transmitter loop appropriately-which increasesthe manufacturing costs and lowers the profitability of the transmitterfor the manufacturer.

[0013] While all of these systems are capable of operating a pluralityof receivers, each is complex, expensive, and difficult to program.Accordingly, there is a need for a simple, smaller, and less expensivetransmitter capable of transmitting a plurality of different codes at aplurality of different modulations and frequencies. There is also a needfor a new way of programing a universal transmitter that is lesscomplicated and easier to perform.

SUMMARY OF THE INVENTION

[0014] A universal transmitter disclosed herein is capable oftransmitting a plurality of signals at a plurality of differentmodulations and frequencies, and provides a simplified programming setupso that multiple signal configurations (including code format,modulation format and frequency) can be programed quickly and easily.The transmitter comprises a signal configuration input which an operatorcan use to select a desired signal configuration for transmission, acontroller for interpreting the selected signal configuration, storingit to memory, retrieving it when the appropriate user input isdepressed, and outputting it to a transmitter circuit capable oftransmitting the selected signal configuration received from thecontroller at a predetermined modulation and frequency, and at least oneuser input for actuating the transmitter and identifying to thecontroller what signal configuration is to be transmitted by thetransmitter.

[0015] The universal transmitter operator (or user) can store andtransmit a plurality of signal configurations at a plurality ofmodulations and frequencies by simply placing the transmitter into alearn mode, adjusting the signal configuration input to a desired firstsignal configuration, selecting a user input with which the first signalconfiguration is to be associated so that the controller can retrieveand transmit the desired first signal configuration when operated, andstoring the first signal configuration to memory so that the storedfirst signal configuration can be recalled and transmitted by thetransmitter every time the user input associated with that signal isactuated. Once the transmitter is out of the learn mode and the userselects the user input associated with the stored first signalconfiguration, the controller will retrieve the stored first signalconfiguration from its memory location and transmit the signal specifiedby the stored first signal configuration settings at its appropriatecode modulation and frequency.

[0016] A second signal configuration can be programmed by simply placingthe transmitter back into learn mode, re-adjusting the signalconfiguration input to a desired second signal configuration, selectinga user input with which the second signal configuration is to beassociated, and storing the second signal configuration to memory sothat the stored second signal configuration can be recalled andtransmitted by the transmitter every time the user input associated withthat signal is actuated. Once the transmitter is out of the learn modeand the user selects the user input associated with the stored secondsignal configuration, the controller will retrieve the stored secondsignal configuration from its memory location and transmit the signalspecified by the stored second signal configuration settings at itsappropriate code modulation and frequency.

[0017] More particularly, the universal transmitter may include userinputs consisting of multi-position switches for identifying the signalconfiguration (e.g., the transmitter type, security code, codemodulation, frequency, etc.), a controller for reading themulti-position switch settings, determining the selected signalconfiguration, storing the selected signal configuration into memory,and outputting the selected signal configuration with the appropriatecode and at the appropriate modulation, a transmitter circuit fortransmitting the signal configuration at the appropriate modulation andfrequency, and a user input for actuating the transmitter andidentifying to the controller what signal configuration is to betransmitted and at what modulation and frequency. The user input may bea DIP switch capable of identifying the transmitter type and securitycode format for the actuation signal. According to the preferredembodiment, two multi-position DIP switches may be used, with one beingused for selecting what type of manufacturer's transmitter is to beemulated and another being used for selecting what type of security codeis to be transmitted by the transmitter. The transmitter type selectionindicates to the controller what type of code modulation and frequencythe actuation signal is to be transmitted at, (e.g., is it suppose tooperate as manufacturer A's transmitter at 300 MHZ, manufacturer B'stransmitter at 310 MHZ, manufacturer C's transmitter at 390 MHZ, etc.).The security code switch indicates to the controller what logic sequencemakes up the actuation signal, (e.g., what string of bits or bitsequence should be transmitted).

[0018] Once a user input has been actuated, the universal transmitter'scontroller will determine whether the transmitter has been placed into alearn mode or whether normal operation has been specified. When in thelearn mode, the controller will determine which user input (e.g.,pushbutton input) has been selected by the user and will store thesignal configuration selected via the multi-position switch settingsinto a memory location associated with that particular user input. Auser can store another signal configuration by simply placing thetransmitter back into learn mode and re-adjusting the signalconfiguration input to the desired additional signal configuration. Thecontroller will determine which user input has been depressed and willstore the signal configuration selected via the multi-position switchsettings into a memory location associated with that particular userinput. This routine may be repeated until all the desired signalconfigurations have been programmed, until all the memory locations arefull, or until all the user inputs have been assigned a desired signalconfiguration.

[0019] When in the normal operation mode, the controller will determinewhich user input has been actuated by the user and will retrieve thesignal configuration stored at the memory location associated with thedepressed input. The controller interprets the signal configurationretrieved from memory and outputs the stored code to transmittercircuitry capable of transmitting the signal specified by the storedsignal configuration settings at the appropriate code modulation andfrequency so that a receiver actuation signal will be generated. Thetransmitter circuitry may include a tunable transmitter loop capable oftransmitting at a variety of frequencies, or may include separatetransmitter loops each capable of generating signals at differentfrequencies. According to the preferred embodiment, separate transmitterloops are used and the controller interprets the signal configurationretrieved from memory and outputs the signal to the transmitter loopcircuitry capable of transmitting the signal at the appropriate codemodulation and frequency.

BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Other objects and advantages of the invention will becomeapparent upon reading the following detailed description and uponreference to the drawings, in which:

[0021]FIG. 1 is a perspective view of a movable barrier operator using atransmitter embodying the present invention;

[0022]FIG. 2 is a block diagram of a transmitter embodying the presentinvention;

[0023]FIG. 3 is a schematic incorporating the transmitter shown in FIG.2; and

[0024]FIGS. 4a-b are upper level flow charts of the instructionsexecuting in the controller of FIG. 3.

[0025] While the invention will be described in connection with apreferred embodiment, it will be understood that it is not intended tolimit the invention to that embodiment. On the contrary, it is intendedto cover all alternatives, modifications and equivalents as may beincluded within the spirit and scope of the invention as defined by theappended claims.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0026] Referring now to the drawings and especially to FIG. 1, in whicha movable barrier operator embodying the present invention is generallyshown therein and identified by reference numeral 10. The movablebarrier operator 10 includes a head unit 12 mounted within a garage 14and is employed for controlling the opening and closing of garage 14.More specifically, the head unit 12 is mounted to the ceiling 16 of thegarage 14 and includes a rail 18 extending therefrom with a releasabletrolley 20 attached having an arm 22 extending to a multiple paneledgarage door 24 positioned for movement along a pair of door rails 26 and28. The movable barrier operator 10 transfers the garage door 24 betweenthe closed position illustrated in FIG. 1 and an open or raisedposition, allowing access to and from the garage 14.

[0027] The system includes a hand-held transmitter unit 30 adapted tosend signals to an antenna 32 positioned on the head unit 12 and coupledto a receiver located within the head unit 12. An external control pad34 is positioned on the outside of the garage having a plurality ofbuttons thereon and communicates via radio frequency transmission withthe antenna 32 of the head unit 12. The transmitter 30 and control pad34 are capable of being programmed to transmit a plurality of differentcodes at a plurality of different frequencies, as will be appreciated inmore detail hereinafter. A switch module 39 is mounted on a wall of thegarage. The switch module 39 is connected to the head unit by a pair ofwires 39 a. The switch module 39 includes a learn switch 39 b, a lightswitch 39 c, a lock switch 39 d and a command switch 39 e.

[0028] An optical emitter 42 and an optical detector 46 are coupled tothe head unit 12 by a pair of wires 44 and 48, respectively. The emitter42 and detector 46 are used to satisfy the requirements of Underwriter'sLaboratories, the Consumer Product Safety Commission and the like whichrequire that garage door operators sold in the United States must, whenin a closing mode and contacting an obstruction having a height of morethan one inch, reverse and open the door in order to prevent damage toproperty and injury to persons. A conventional pass point detector orabsolute positioning detector may also be used to indicate door positionto the controller.

[0029] The transmitter 30 includes a plurality of user inputs 50, asignal configuration input 52, controller 54, memory 56, and transmittercircuitry 58, as shown in FIG. 2. The user inputs 50 can comprise anynumber of pushbuttons and operate to send power to the controller 54,(indicating that a receiver actuation signal should be transmitted orthat learn mode should be entered). The signal configuration input 52comprises a plurality of multi-position switches that allow the user toselect a signal configuration from a plurality of possible transmittertypes, bit patterns, code modulation schemes, and frequencies. Thesignal configuration input settings determine what type of signal willbe transmitted as part of the receiver actuation signal.

[0030] As will be discussed in more detail below, the controller 54determines which user input 50 has been pressed and whether thetransmitter has been placed into a learn mode. If in the learn mode, thecontroller 54 reads the signal configuration input 52 settings andstores the signal configuration settings in memory 56 in a locationassociated with the particular pushbutton pressed. The transmitter 30can be programmed with additional signal configurations in similarfashion. Specifically, the user adjusts the configuration input 52 tothe desired additional signal configuration, places the transmitter 30into learn mode, and selects another user input 50 with which theadditional signal configuration is to be associated. The controller 54reads the configuration input 52 settings and stores the signalconfiguration settings in memory 56. This process is repeated until allthe desired signal configurations have been stored, until all theavailable memory is used up, or until all user inputs 50 have beenassigned a desired signal configuration.

[0031] If the controller 54 determines that the transmitter 30 is not inthe learn mode, it retrieves the signal configuration stored at thememory location 56 associated with the depressed input 50. Thecontroller 54 interprets the signal configuration retrieved from memoryand outputs the stored code at the appropriate modulation to transmittercircuitry 58 which is capable of transmitting the signal specified bythe stored signal configuration settings at the appropriate codemodulation and frequency so that a receiver actuation signal will begenerated. The transmitter circuitry 58 may include a tunabletransmitter loop capable of transmitting at a variety of frequencies, ormay include separate transmitter loops each capable of generatingsignals, at different frequencies. For example, in FIG. 2, thecontroller 54 would output data to transmitter circuitry 58 and tune thetransmitter circuitry 58 to output at 310 Megahertz (MHZ) if theconfiguration input 52 specified transmitting an eight bit or ten bitreceiver actuation signal at 310 MHZ. Similarly, the controller wouldtune the transmitter circuitry 58 to output at 300 MHZ if theconfiguration input 52 specified transmitting a ten bit receiveractuation signal at 300 MHZ. The controller 54 may also tune thetransmitter circuitry to 390 MHZ if the configuration input 52 specifiedtransmitting packets of nine bit, twelve bit, or twenty bit packets at390 MHZ. As discussed further below, the transmitter circuitry 58 mayinclude several transmitter loops each being capable of generating areceiver actuation signal at a different frequency, (e.g., one loop for300 MHZ, one for 310 MHZ, one for 390 MHZ, etc.).

[0032] Turning now to FIG. 3, in which a schematic diagram of atransmitter embodying the present invention is shown generally atreference numeral 30. As discussed above, the transmitter 30 includesuser input 50, signal configuration input (or configuration input) 52,controller 54, memory 56 and transmitter circuitry 58. Power is suppliedto the transmitter 30 via battery 60 and power circuitry 62 whichregulates the voltage supply to +5 Volts (V) for pins VPP, VSS and VDDof controller 54 (which may be a Microchip PIC16C63A). A 4 MHz crystalclock generator (oscillator) 64, such as a ceramic resonator, is coupledto pins CLKIN and CLKOUT to provide timing for the controller 54. Theconfiguration input 52 includes two multi-position DIP switches S1 andS2 which are connected to input pins RA0, RA1, RA2 and RA3 of controller54 on one side and pins RC4, RC5, RC6 and RC7 on the other. Switches S1and S2 provide sixteen switches with which the user is able to identifythe signal configuration. The controller 54 reads the multi-positionswitch settings by cycling pin RC7, RC6, RC5 and RC4 on one at a time.From the controller's perspective the switches are arranged in a four byfour matrix with pins RA0, RA1, RA2 and RA3 making up the rows and pinsRC4, RC5, RC6 and RC7 making up the columns.

[0033] Switch S1 contains four switches which are used to identify thetype of transmitter that is to be emulated by the universal transmitter30. The switches of S1 are adjusted to open or close the contacts of theDIP switch and are all connected to output pin RC7 of the controller 54.The controller 54 determines the position of each of the four switchesin DIP switch S1 by driving output pin RC7 high and reading the inputreceived on input pins RA0, RA1, RA2 and RA3. For each of the fourswitches in DIP switch S1 that are closed, a high input will be receivedon the input pin coupled to the closed switch. The settings of theseswitches will identify to the controller 54 which transmitter is to beemulated. In the preferred embodiment, the universal transmitter is setup to emulate eight different transmitters. These may be transmittersfrom Stanley, MultiCode, Linear/Moore-O-Matic, Genie and Chamberlain.

[0034] Switch S2 contains twelve switches which are used to identify thesecurity code (or bit sequence) that is to be transmitted by theuniversal transmitter 30. In order to read the settings of switch S2,the twelve switches of S2 are separated into three groups with fourswitches in each group. The three groups of switches are connected tooutput pins RC6, RC5 and RC4. The controller 54 determines the positionof each of the four switches in the first group of switches by drivingoutput pin RC6 high and reading the input received on input pins RA0,RA1, RA2 and RA3. For each closed switch a high input will be receivedon the input pin coupled to the closed switch. The settings of theseswitches will identify to the controller 54 the first four digits ofcode that are to be transmitted by the transmitter 30. Then thecontroller 54 determines the position of each of the four switches inthe second group of switches by driving output pin RC5 high and readingthe input received on input pins RA0, RA1, RA2 and RA3. Again, for eachclosed switch a high input will be received on the input pin coupled tothe closed switch. The settings of these switches will identify to thecontroller 54 the fifth through eighth digits of code that are to betransmitted by the transmitter 30. Lastly, the controller 54 determinesthe position of each of the four switches in the third group of switchesby driving output pin RC4 high and reading the input received on inputpins RA0, RA1, RA2 and RA3. A high input will be received on the inputpins coupled to closed switches. The settings of these switches willidentify to the controller 54 the remaining digits of code that are tobe transmitted by the transmitter 30.

[0035] In order to have the controller read the configuration inputswitch settings, the transmitter 30 must be placed in a learn mode. Thetransmitter 30 is placed in learn mode by depressing the user inputswitches 50 (e.g., momentary switches S2 and S3) down together andholding them down for a minimum of five seconds although otherarrangements for entering the learn mode, such as dedicated learn modeswitches could be used. When the controller 54 has entered the learnmode, it will alternate pin RA4 high and low causing bursts of currentto flow through the current limiting capacitor R5 and through the yellowlight emitting diode (LED) 66 making the LED 66 blink. The controller 54will remain in learn mode for 10 seconds and will store the signalconfiguration settings into memory 56 once a user input 50 is depressed.Since the momentary switches S2 and S3 of the transmitter 30 are coupledto the battery 60 on one side and to pins RB5 and RB7 on the other, thecontroller 54 is capable of determining when a user input 50 has beendepressed by polling pins RB5 and RB7 to see if either have been drivenhigh. If either pin has been driven high, the controller 54 knows thatthe switch (S2 or S3) connected to the pin driven high (RB5 or RB7) hasbeen closed. The memory location where the signal configuration settingsare stored is associated with the user input that was depressed so thatthe controller 54 will recall the correct signal configuration everytime that input is depressed. Memory 56 may consist of a serial EEPROMsuch as PIC16CR62.

[0036] A second signal configuration may be programmed into thetransmitter 30 by placing the transmitter 30 back into learn mode,(e.g., depressing both user inputs 50 at the same time and holding for aminimum of five seconds), and selecting/depressing a user input 50 withwhich the new signal configuration is to be associated. Since thetransmitter 30 only remains in the learn mode for ten seconds, thesignal configuration settings should be made prior to placing thetransmitter 30 into learn mode. By doing so, the user will only need toselect the user input 50 the signal configuration settings are to beassociated with while the transmitter 30 is in learn mode. In FIG. 3, atwo button transmitter is provided in which one signal configurationsetting can be stored for switch S3 of user input 50 and another signalconfiguration setting can be stored for switch S4 of user input 50. Inother embodiments, additional user input switches may be provided toallow for the storing of additional signal configurations, (e.g., athree button transmitter may be provided to allow for a third signalconfiguration setting to be stored, a fourth button transmitter may beprovided to allow for a fourth signal configuration setting to bestored, etc.).

[0037] A stored signal configuration setting may be replaced by anothersignal configuration setting by simply adjusting the signalconfiguration input 52 to the desired new signal configuration setting,placing the transmitter 30 into learn mode, and selecting the user input50 associated with the old signal configuration setting to be replaced.This action will cause the controller 54 to store the new signalconfiguration settings (or the current settings of the multi-positionswitches S1 and S2) in place of the old signal configuration settings.

[0038] Unless the learn mode is again entered, the multi-position switchsettings may be altered in any fashion without affecting how thetransmitter 30 works. This is due to the fact that the signalconfiguration settings needed for transmitting by the transmitter 30 areretrieved from memory 56 not directly from the configuration input 52.The signal configuration input 52 simply serves as a way of gettingthese signal configuration settings stored into memory 56.

[0039] During normal operation (e.g., when the transmitter 30 is not inlearn mode) the controller 54 keeps the transmitter 30 in a suppressedstate called sleep mode in an effort to preserve battery power andprolong battery life. The controller 54 is awakened from sleep mode wheneither of the input pins RB5 and RB7 are driven high, or when both ofthe input pins RB5 and RB7 are driven high. In the former instance, thedriving of one of the input pins RB5 and RB7 signifies to the controllerthat the user input 50 has been depressed. In the latter instance, thedriving of both input pins RB5 and RB7 signifies to the controller 54that the learn mode should be entered (presuming both inputs aredepressed for a minimum of five seconds). If one of the user inputs 50are depressed, the controller retrieves the signal configurationsettings from the memory location associated with the depressed userinput (S3 or S4) and determines what transmitter circuitry 58 the signalshould be outputted to for transmission.

[0040] In response to the detection of a depressed user input 50associated with a code to be transmitted at 390 MHZ, the controller 54will bias transistor 68 on via pin RB0 to modulate oscillator circuit 70and transmit the signal specified by the stored signal configurationsettings (or stored signal). Transistor 68 and oscillator circuit 70enable the RF transmission of the stored signal at approximately 390 MHZvia the antenna 72, herein a printed circuit board (PCB) loop antenna.When the selected signal configuration settings indicate that the storedsignal is to be transmitted at 300 MHZ, the controller 54 will biastransistor 74 on via pin RB1 to modulate oscillator circuit 76 andtransmit the stored signal. Transistor 74 and oscillator circuit 76enable the RF transmission of the stored signal at approximately 300 MHZvia the antenna 78. When the selected signal configuration settingsindicate that the stored signal is to be transmitted at 310 MHZ thecontroller 54 will bias transistor 80 on via pin RB2 to modulateoscillator circuit 82 and transmit the stored signal. As with the othertransmitter circuits, transistor 80 and oscillator circuit 82 enable theRF transmission of the stored signal at approximately 310 MHZ via theantenna 84. When an input 50 has been depressed and the transmitter istransmitting the stored signal, the controller 54 will set pin RA4 highcausing current to flow through the current limiting capacitor R5 andthrough the yellow light emitting diode (LED) 66 causing the diode toremain steadily lit thereby indicated to the user that the transmissionrequest has been received and that the transmitter is operating.

[0041] Turning now to FIG. 4a, in which upper-level flow charts of theinstructions executing in the controller 54 are shown. During normaloperation, the transmitter 30 is awakened out of sleep mode andinitialized in step 100 in response to a user input 50 being depressed.The controller 54 then checks to see if user input buttons S3 and S4have been pressed in step 102, and specifically, whether both inputbuttons S3 and S4 have been pressed in step 104. If both buttons are notbeing pressed, the controller 54 checks in step 106 to see if one buttonhas been pressed. If not, the controller returns to its main function ofchecking to see if any input buttons 50 have been pressed in step 102.If one input button S3 or S4 has been pressed, the controller reads (orretrieves) the stored signal configuration settings from EEPROM 56,starts interrupt Timer 2 (FIG. 4b), and transmits the desired signal viathe transmitter circuitry 58 in step 108.

[0042] If both input buttons S3 and S4 have been depressed (or pressed),the controller checks in step 110 to determine whether five seconds haselapsed. If not, the controller returns to its main function of checkingin step 102 to determine whether any inputs 50 have been pressed. Iffive seconds has elapsed, the controller 54 places the transmitter inprogram (or learn) mode in step 112 and checks to see if both buttons S3and S4 have been released in step 114. If both buttons continue to bepressed, the controller 54 loops back to step 112 and 114 until bothbuttons have been released. Once both buttons have been released, thecontroller 54 in step 116 is ready to program and checks in step 118 tosee if one of the input buttons 50 have been pressed. If not, thecontroller 54 checks to see whether ten seconds have elapsed in step120. If ten seconds have not elapsed, the controller remains ready toprogram in step 116 and checks for button presses in step 118. If tenseconds have elapsed, the controller 54 places the transmitter 30 intosleep mode in step 122. If the controller detects that a button has beendepressed prior to ten seconds elapsing, it will read the signalconfiguration settings of the signal configuration input 52 to determinethe signal configuration (e.g., code, format and frequency) and storethe same in step 124 to EEPROM 56 at a memory location associated withthe pressed push button or user input 50.

[0043] In FIG. 4b, the main interrupt Timer 0 interrupt, causes aninterrupt to occur every one millisecond (mS) in step 150. At this time,the controller 54 debounces the manufacturing test mode pin of thecontroller 54 in step 152 and then checks to see if the test mode pin ishigh in step 154. If the manufacturing test mode pin is high, thecontroller is placed into a manufacturing test mode in step 156. Duringthe manufacturing test mode each of the transmit frequencies are turnedon for twelve mS. In the schematic of FIG. 3, pin RB4 of controller 54is the manufacturing test mode pin. Once the test mode is complete, pinRB4 goes low and the controller stops the transmitter from transmittingin step 158 and shuts down the transmitter power (e.g., makes thetransmitter enter sleep mode). If the manufacturing test mode pin is nothigh, the controller 54 debounces the input buttons 50 in step 160 andchecks for activity with respect to the transmitter 30 in step 162.During this check, the controller 54 determines whether the transmitteris still transmitting a signal. With less secure transmissions, theentire signal can be sent in one cycle or frame; however, in morecomplex transmissions the signal may require two frames of data to besent. If there has not been activity within the last one hundred mS,control is shifted from step 164 to step 158 and the controller 54places the transmitter in sleep mode. If there has been activity in thepast one hundred mS, control is shifted from step 164 to step 166 andthe no-activity timeout timer is reset to one hundred mS and the Timer 0interrupt is exited (e.g., returning the controller to the state it wasin prior to the interrupt).

[0044] The Timer 2 interrupt begins at step 168 when the transmitter 30has started transmitting and interrupts every one-half mS. During thisinterrupt, the controller 54 checks to see if a one hundred forty-foursecond timeout has expired in step 170. If the timeout has expired, thecontroller 54 the controller 54 assumes one of the user inputs 50 isstuck on, stops the transmitter 30 from transmitting, and places thetransmitter 30 in sleep mode in step 158. If the transmit timer has notexpired, the controller 54 continues to output the data stored in thememory location corresponding to the selected input button 50 and setsflags for the edges of the transmitted signal in step 172. Once thetransmitter has completed transmitting the Timer 2 interrupt is exitedand the controller checks to see if there has been any activity withrespect to the transmitter buttons in step 162. Specifically, thecontroller 54 checks to see if there has been any activity within thelast one hundred mS in step 164. If there has not been any activity, thetransmitter is placed in sleep mode in step 158. If there has beenactivity within the last one hundred mS, the no-activity timeout timeris reset to one hundred mS and the Timer 0 interrupt is exited at step166. As referenced above, a computer program listing appendix includingcode executed by controller 54 has been submitted with the filing ofthis application.

[0045] Thus it is apparent that there has been provided, in accordancewith the invention, a universal transmitter that filly satisfies theobjects, aims, and advantages set forth above. While the invention hasbeen described in conjunction with specific embodiments thereof, it isevident that many alternatives, modifications, and variations will beapparent to those skilled in the art in light of the foregoingdescription. Accordingly, it is intended to embrace all suchalternatives, modifications, and variations as fall within the spiritand broad scope of the appended claims.

What is claimed is:
 1. A transmitter for transmitting a plurality ofsignals at a plurality of modulations and frequencies comprising: asignal configuration input for use by an operator to select signalconfiguration settings for transmitter signals; a controller responsiveto the signal configuration input for storing the selected signalconfigurations in memory locations; a plurality of user inputs;apparatus responsive to each user input for retrieving the signalconfiguration associated therewith; and transmitter circuitry fortransmitting, the selected signal configuration received from thecontroller at a predetermined frequency.
 2. A transmitter according toclaim 1, wherein the plurality of user inputs comprises: a plurality ofuser inputs each associated with a stored signal configuration.
 3. Atransmitter according to claim 1, wherein the signal configuration inputfurther comprise: a multi-position switch for selecting a type oftransmitter that is to be emulated; and a multi-position switch forselecting, a code to be transmitted by the transmitter.
 4. A transmitteraccording to claim 1, wherein the user inputs comprise: a first switchcapable of identifying to the controller the location of a first signalconfiguration to be retrieved and transmitted; and a second switchcapable of identifying to the controller the location of a second signalconfiguration to be retrieved and transmitted.
 5. A transmitteraccording to claim 1, wherein the transmitter circuitry comprises: asingle transmitter circuit for selectively transmitting a signal at oneof a plurality of different frequencies.
 6. A transmitter according toclaim 5, wherein the single transmitter circuit further comprises atransmitter circuit selectively operable at frequencies of 300 MHZ, 310MHZ and 390 MHZ.
 7. A universal transmitter according to claim 1,wherein the transmitter circuitry comprises: a first transmitter circuitcapable of transmitting at a first predetermined frequency; and a secondtransmitter circuit capable of transmitting at a second predeterminedfrequency.
 8. A method of programming a universal transmittercomprising: setting a signal configuration input to a first set ofdesired positions corresponding to a first signal configuration; storingthe first signal configuration into a first memory location; setting thesignal configuration input to a second set of desired positionscorresponding to a second signal configuration; storing the secondsignal configuration into a second memory location; associating one of aplurality of user inputs with each stored signal configuration; andreceiving one of the plurality of user inputs and transmitting thestored signal configuration associated therewith.
 9. A method ofprogramming a transmitter comprising: setting a signal configurationinput to a first set of desired positions corresponding to a firstsignal configuration; selecting a desired user input with which thefirst selected signal configuration is to be associated; storing thefirst selected signal configuration into a first memory location;setting the signal configuration input to a second set of desiredpositions corresponding to a second signal configuration; selecting adesired user input with which the second selected signal configurationis to be associated; and storing the second selected signalconfiguration into a second memory location.
 10. A method of programminga transmitter including a plurality of multi-position signalconfiguration switches comprising: setting the multi-position switchesto a first set of desired positions corresponding to a first signalconfiguration; selecting a desired user input during a first learn modeoperation with which the first selected signal configuration is to beassociated; storing the first signal configuration into a first memorylocation; setting the multi-position switches to a second set of desiredpositions corresponding to a second signal configuration; selecting adesired user input during a second learn mode operation with which thesecond selected signal configuration is to be associated; and storingthe second signal configuration into a second memory location.
 11. Amethod according to claim 10, comprising: depressing a predetermineduser input for a predetermined period of time in order to place thetransmitter into a learn mode.
 12. A method according to claim 10,comprising: identifying from the selected multi-position switch settingsa type of transmitter to be emulated.
 13. A method according to claim10, comprising: identifying from the selected multi-position switchsettings a code format to be transmitted.
 14. A method according toclaim 10, comprising: identifying from the selected multi-positionswitch settings a modulation format at which a signal is to betransmitted.
 15. A method according to claim 10, comprising: identifyingfrom the selected multi-position settings a frequency at which a signalis to be transmitted.